/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package utilidades;

import Monitores.MonitorValoresADescargar;
import Monitores.MonitorValoresBdToPDF;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * Lee los valores del fichero de valores a descargar y el de generacion
 * de PDFs y los carga en un array.
 * @author felipe
 */
public class LectorValores {

    private FileInputStream fstream;
    private BufferedReader buffer;
    private final MonitorValoresADescargar monitorValoresADescargar;
    private final MonitorValoresBdToPDF monitorValoresBdToPDF;

    public LectorValores(MonitorValoresADescargar monitorValoresADescargar, MonitorValoresBdToPDF monitorValoresBdToPDF) {
        this.monitorValoresADescargar = monitorValoresADescargar;
        this.monitorValoresBdToPDF = monitorValoresBdToPDF;
    }

    /**
     * Lee valores de un CSV para generar descargas de CSVs con 
     * los datos anuales de de dichos valores en la bolsa.
     * @return 
     */
    public int leerValoresADescargar() {
        int valores = 0;
        try {

            fstream = new FileInputStream("/home/felipe/NetBeansProjects/YahooFinances/src/Valores.csv");
            buffer = new BufferedReader(new InputStreamReader(fstream));
            String strLinea;
            while ((strLinea = buffer.readLine()) != null) {
                monitorValoresADescargar.putValor(strLinea);
                valores++;
            }
        } catch (IOException ex) {
            Logger.getLogger(LectorValores.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            cerrarStreamYBuffer();
            return valores;
        }
    }

    /**
     * Lee valores de un CSV para generar PDFs con graficas de dichos valores.
     * @return 
     */
    public int leerValoresAPDF() {
        int valores = 0;
        try {
            fstream = new FileInputStream("/home/felipe/NetBeansProjects/YahooFinances/src/PDFs.csv");
            buffer = new BufferedReader(new InputStreamReader(fstream));
            String strLinea;
            while ((strLinea = buffer.readLine()) != null) {
                monitorValoresBdToPDF.agregarValorDelCSVALista(strLinea);
                valores++;
            }
        } catch (IOException ex) {
            Logger.getLogger(LectorValores.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            cerrarStreamYBuffer();
            return valores;
        }
    }

    /**
     * Cierra el stream de lectura al fichero y el buffer temporal.
     */
    private void cerrarStreamYBuffer() {
        try {
            buffer.close();
            fstream.close();
        } catch (IOException ex) {
            Logger.getLogger(LectorValores.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}